#include<bits/stdc++.h>
using namespace std;
const int N=1e6+15,M=1e6+1;
int n,m;
int  arr1[N],arr2[N];

int main()
{
	cin>>n>>m;
	for(int i=0;i<n;i++)
	{
		cin>>arr1[i]>>arr2[i];
	}
	
	while(m--)
	{
		int w;
		cin>>w;
		if(w==0)
		{
			cout<<0<<endl;
			continue;
		}
		vector<int> f(w);
		for(int i=0;i<n;i++)
		{
			
			for(int j=w;j>=0;j--)
			{
				if(j>=arr1[i])
					f[j]=max(f[j],f[j-arr1[i]]+arr2[i]);
			}
		}
		cout<<f[w]<<endl;
	}
	return 0;
}
